1733C - Parity Shuffle Sorting - CodeForces Solution


constructive algorithms greedy sortings

Please click on ads to support us..

Python Code:

a=int(input())
for i in range(a):
    n=int(input())
    z=list(map(int,input().split()))
    ans=[]
    last=[]
    for i in range(len(z)):
        if(z[i]%2==z[0]%2):
            last.append(i)

    ans=[]
    for i in range(len(last)-2,-1,-1):
        ans.append([last[i]+1,last[-1]+1])

    z[0]=z[last[-1]]

    for i in range(1,len(z)):
        if(z[i]%2!=z[0]%2):
            ans.append([1,i+1])
    print(len(ans))
    for i in range(len(ans)):
        print(ans[i][0],ans[i][1])
        
            
    
    
   
   

C++ Code:

#include <bits/stdc++.h>
using namespace std;

int a[200005];

int main() {
	int t;
	scanf("%d", &t);
	while (t--) {
		int n;
		scanf("%d", &n);
		for (int i = 0; i < n; i++) {
			scanf("%d", &a[i]);
		}
		if (n == 1) {
			puts("0");
			continue;
		}
		vector<pair<int, int> > ans;
		ans.emplace_back(1, n);
		if ((a[0] + a[n - 1]) & 1) {
			a[n - 1] = a[0];
		} else {
			a[0] = a[n - 1];
		}
		int x = a[0];
		for (int i = 1; i < n - 1; i++) {
			if ((a[i] + x) & 1) {
				ans.emplace_back(1, i + 1);
			} else {
				ans.emplace_back(i + 1, n);
			}
		}
		printf("%d\n", ans.size());
		for (auto pr : ans) {
			printf("%d %d\n", pr.first, pr.second);
		}
	}
	return 0;
}


Comments

Submit
0 Comments
More Questions

32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation
1559A - Mocha and Math
832A - Sasha and Sticks
292B - Network Topology
1339A - Filling Diamonds
910A - The Way to Home
617A - Elephant
48A - Rock-paper-scissors
294A - Shaass and Oskols
1213A - Chips Moving
490A - Team Olympiad
233A - Perfect Permutation
1360A - Minimal Square
467A - George and Accommodation
893C - Rumor
227B - Effective Approach
1534B - Histogram Ugliness
1611B - Team Composition Programmers and Mathematicians
110A - Nearly Lucky Number
1220B - Multiplication Table
1644A - Doors and Keys
1644B - Anti-Fibonacci Permutation
1610A - Anti Light's Cell Guessing
349B - Color the Fence
144A - Arrival of the General
1106A - Lunar New Year and Cross Counting
58A - Chat room